GCancellable *cancellable,
GError **error)
{
- gboolean ret = FALSE;
g_autofree char *ret_checksum = NULL;
- g_autofree guchar *csum = NULL;
if (OSTREE_IS_REPO_FILE (f))
{
{
if (!glnx_dfd_name_get_all_xattrs (AT_FDCWD, gs_file_get_path_cached (f),
&xattrs, cancellable, error))
- goto out;
+ return FALSE;
}
if (g_file_info_get_file_type (f_info) == G_FILE_TYPE_REGULAR)
{
in = (GInputStream*)g_file_read (f, cancellable, error);
if (!in)
- goto out;
+ return FALSE;
}
+ g_autofree guchar *csum = NULL;
if (!ostree_checksum_file_from_input (f_info, xattrs, in,
OSTREE_OBJECT_TYPE_FILE,
&csum, cancellable, error))
- goto out;
+ return FALSE;
ret_checksum = ostree_checksum_from_bytes (csum);
}
- ret = TRUE;
ot_transfer_out_value(out_checksum, &ret_checksum);
- out:
- return ret;
+ return TRUE;
}
OstreeDiffItem *
GCancellable *cancellable,
GError **error)
{
- gboolean ret = FALSE;
g_autofree char *checksum_a = NULL;
g_autofree char *checksum_b = NULL;
- OstreeDiffItem *ret_item = NULL;
-
if (!get_file_checksum (flags, a, a_info, &checksum_a, cancellable, error))
- goto out;
+ return FALSE;
if (!get_file_checksum (flags, b, b_info, &checksum_b, cancellable, error))
- goto out;
+ return FALSE;
+ g_autoptr(OstreeDiffItem) ret_item = NULL;
if (strcmp (checksum_a, checksum_b) != 0)
{
ret_item = diff_item_new (a, a_info, b, b_info,
checksum_a, checksum_b);
}
- ret = TRUE;
ot_transfer_out_value(out_item, &ret_item);
- out:
- if (ret_item)
- ostree_diff_item_unref (ret_item);
- return ret;
+ return TRUE;
}
static gboolean
GCancellable *cancellable,
GError **error)
{
- gboolean ret = FALSE;
- GError *temp_error = NULL;
- g_autoptr(GFileEnumerator) dir_enum = NULL;
- g_autoptr(GFile) child = NULL;
- g_autoptr(GFileInfo) child_info = NULL;
-
- dir_enum = g_file_enumerate_children (d, OSTREE_GIO_FAST_QUERYINFO,
- G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
- cancellable,
- error);
+ g_autoptr(GFileEnumerator) dir_enum =
+ g_file_enumerate_children (d, OSTREE_GIO_FAST_QUERYINFO,
+ G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS,
+ cancellable,
+ error);
if (!dir_enum)
- goto out;
+ return FALSE;
- while ((child_info = g_file_enumerator_next_file (dir_enum, cancellable, &temp_error)) != NULL)
+ while (TRUE)
{
+ GFileInfo *child_info;
const char *name;
- name = g_file_info_get_name (child_info);
+ if (!g_file_enumerator_iterate (dir_enum, &child_info, NULL,
+ cancellable, error))
+ return FALSE;
+ if (child_info == NULL)
+ break;
- g_clear_object (&child);
- child = g_file_get_child (d, name);
+ name = g_file_info_get_name (child_info);
+ g_autoptr(GFile) child = g_file_get_child (d, name);
g_ptr_array_add (added, g_object_ref (child));
if (g_file_info_get_file_type (child_info) == G_FILE_TYPE_DIRECTORY)
{
if (!diff_add_dir_recurse (child, added, cancellable, error))
- goto out;
+ return FALSE;
}
-
- g_clear_object (&child_info);
- }
- if (temp_error != NULL)
- {
- g_propagate_error (error, temp_error);
- goto out;
}
- ret = TRUE;
- out:
- return ret;
+ return TRUE;
}
/**